package test.testEquals;

public class Student {
    private String name;
    private Integer age;
    private int num;


    public Student(String name, Integer age, int num) {
        this.name = name;
        this.age = age;
        this.num = num;
    }

    public Student() {
    }
/*
    @Override
    public boolean equals(Object o) {
        //直接比较地址值
        if (this == o) return true;
        //对象既然可以调用方法， 那调用equals（）方法的肯定不为null 了： 所以被比较的为null， 也是不相等
        if (o == null || getClass() != o.getClass()) return false;
        //要比较的肯定是 student 类型的对象， 不然在这里强转的时候就已经失败了
        Student student = (Student) o;
        //对于基本数据类型比较 用 ==  !=
        if (num != student.num) return false;
        // 此时num 已经是相等的. 在此基础上比较 String 类型的name,   因为像这种java 中已经定义好的类 是都重写了equals方法的.
        if (name != null ? !name.equals(student.name) : student.name != null) return false;
        return age != null ? age.equals(student.age) : student.age == null;
    }*/


  /*
    @Override
    public int hashCode() {
        int result = name != null ? name.hashCode() : 0;
        result = 31 * result + (age != null ? age.hashCode() : 0);
        result = 31 * result + num;
        return result;
    }*/

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }
}
